package punto1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class punto1 {
Nodo inicio1,inicio2,inicio3;
Nodo tope1,tope2,tope3;
Object dato;
BufferedReader leer;
	public punto1() throws IOException {
		leer=new BufferedReader(new InputStreamReader(System.in));
		inicio1=inicio2=inicio3=null;
		tope1=tope2=inicio3=null;
		llenado();
	}
	private void llenado() throws IOException {
		Nodo pila1 = new Nodo();
		Nodo pila2 = new Nodo();
		for(int i=0;i<2;i++){
		System.out.print("\n se llenara la pila "+(i+1));
		System.out.print("\n para finalizar digite 's' \n");
		
		do{
			System.out.print("\ningrese dato: ");
			dato=leer.readLine();
			if(!dato.equals("s")){
				if(i==0)
					ingresar(dato,1);								
				else
					ingresar(dato,2);		
			}				
			
		}while(!dato.equals("s"));		
		}
		imprimir(inicio1);
		imprimir(inicio2);
		CrearNueva(inicio1);
		imprimir(inicio3);
	}
	private void CrearNueva(Nodo inicio) {		
		Object dato=1,dato2=1;
		Nodo pila3;
		do{
			dato=desapilar(inicio1);
			System.out.println(dato);
		//if(!dato.equals(null)){
			pila3 = new Nodo();
			if(inicio3==null)
				inicio3=pila3;
			else
				tope3.siguiente=pila3;
			
			tope3=pila3;
			pila3.info=dato;
			
		//}			
		dato2=desapilar(inicio2);
		System.out.println(dato2);
		//if(!dato2.equals(null)){
			pila3 = new Nodo();
			if(inicio3==null)
				inicio3=pila3;
			else
				tope3.siguiente=pila3;
			
			tope3=pila3;
			pila3.info=dato2;
		//}
		}while(!dato.equals(null) && !dato2.equals(null));
		
	}
	private Object desapilar(Nodo inicio) {
		
		Object dato;
		dato=inicio.info;
		inicio=inicio.siguiente;
		if(!dato.equals(null))
			return dato;
		
		return null;
	}
	private void imprimir(Nodo inicio) {
		Nodo aux = new Nodo();
		aux=inicio;
		System.out.println("imprimiendo........");
		while(aux!=null){
			System.out.print("|"+aux.info);
			aux=aux.siguiente;
		}
		System.out.println("\n\n");
		
	}
	
	
	private void ingresar(Object dato2,int i) {
		if(i==1){
			Nodo pila1=new Nodo();
			if(tope1==null && inicio1==null)
				inicio1=pila1;			
			else
				tope1.siguiente=pila1;			
			
			tope1=pila1;
			pila1.info=dato2;	
		}else{
			Nodo pila2=new Nodo();
			if(tope2==null && inicio2==null)
				inicio2=pila2;			
			else
				tope2.siguiente=pila2;			
			
			tope2=pila2;
			pila2.info=dato2;
		}			
			
}
	
	
}
